package model

import "github.com/gogf/gf/v2/os/gtime"

type CrontabFormInput struct {
	CategoryId int64  `dc:"分类ID"`
	Title      string `dc:"任务标题"`
	Name       string `dc:"任务名称"`
	Params     string `dc:"参数"`
	Pattern    string `dc:"表达式"`
	Policy     int    `dc:"策略"`
	Count      int    `dc:"执行次数"`
	Sort       int    `dc:"排序"`
	Status     int    `dc:"状态"`
	Remark     string `dc:"任务备注"`
}

type CrontabListInput struct {
	CategoryId int64
	Title      string `dc:"任务标题"`
	Name       string `dc:"任务名称"`
	Page       int
	PageSize   int
}

type CrontabOutput struct {
	Id           uint64                    `json:"id"         orm:"id"         ` //
	CategoryId   int64                     `json:"category_id" orm:"category_id"`
	Title        string                    `json:"title"      orm:"title"      ` // 任务标题
	Name         string                    `json:"name"       orm:"name"       ` // 任务名称，唯一
	Params       string                    `json:"params"     orm:"params"     ` // 任务参数
	Pattern      string                    `json:"pattern"    orm:"pattern"    ` // 表达式
	Policy       int                       `json:"policy"     orm:"policy"     ` // 策略
	Count        int                       `json:"count"      orm:"count"      ` // 执行次数
	Sort         int                       `json:"sort"       orm:"sort"       ` // 排序
	Status       int                       `json:"status"     orm:"status"     ` // 状态：1-启用；2-禁用；
	Remark       string                    `json:"remark"     orm:"remark"     ` // 备注
	CreatedBy    uint64                    `json:"created_by" orm:"created_by" ` // 创建人
	UpdatedBy    uint64                    `json:"updated_by" orm:"updated_by" ` // 更新人
	DeletedBy    uint64                    `json:"deleted_by" orm:"deleted_by" ` // 删除人
	CreatedAt    *gtime.Time               `json:"created_at" orm:"created_at" ` // 创建时间
	UpdatedAt    *gtime.Time               `json:"updated_at" orm:"updated_at" ` // 更新时间
	CreatedAdmin SystemConfigAdminUserItem `json:"created_admin"`
	UpdatedAdmin SystemConfigAdminUserItem `json:"updated_admin"`
	CategoryInfo SystemCrontabCategoryInfo `json:"category_info"`
}
type SystemCrontabCategoryInfo struct {
	Id     uint64 `json:"id"`
	Name   string `json:"name"`
	Remark string `json:"remark"`
}
